package com.jframe.sys.utils;

import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Yz {
	
	public static String createLicense(String mac,String date){
		String json = "{mac:'"+mac+"',createdate:'"+CalendarUtil.getDate()+"',enddate:'"+date+"'}";
				int radom = (int) (1+Math.random()*9);
		String keytemp = json;
		for(int i=0;i<StringUtil.parseInt(radom);i++){
			keytemp = StringUtil.encrypt(keytemp);
		}
		keytemp +=radom;
		radom = (int) (1+Math.random()*5);
		for(int i=0;i<StringUtil.parseInt(radom);i++){
			keytemp = StringUtil.encrypt(keytemp);
		}
		keytemp +=radom;
		return keytemp;
	}
	
	public static String getLicense(String key){
		//String key = createLicense("48-5d-60-36-11-7d","2024-12-31");
		key=key.replace("\n", "");
		Pattern p = Pattern.compile("\\s*|\t|\r|\n");
        Matcher m = p.matcher(key);
        key = m.replaceAll("");
		String num = key.substring(key.length()-1,key.length());
		key = key.substring(0,key.length()-1);
		for(int i=0;i<Integer.parseInt(num);i++){
			key=StringUtil.decrypt(key);
		}
		num = key.substring(key.length()-1,key.length());
		key = key.substring(0,key.length()-1);		
		for(int i=0;i<Integer.parseInt(num);i++){
			key=StringUtil.decrypt(key);
		}
		return key;
	}
	
	public static boolean yz(){
		String license = "";
		try{
				license = FileUtil.readFile(StringUtil.getPrjAbsolutePath()+"WEB-INF/classes/jframe.license");	
		}catch(Exception e){
			e.printStackTrace();
			LogHandler.debug("license文件不存在,请联系l2iu工作，提供主机mac地址申请授权，联系邮件为：l2iu11@163.com。");
			return false;
		}
		if(!StringUtil.isStringNull(license)){
			String json = Yz.getLicense(license);
			
			if(StringUtil.isStringNull(json)){
				LogHandler.debug("license文件中不存在授权码，请联系l2iu工作，提供主机mac地址申请授权，联系邮件为：l2iu11@163.com。");
				return false;
			}else{
				Map map = JsonUtil.json2Map(json);
				String mac = map.get("mac").toString();
				if(!mac.equals(MacAddrUtil.getLocalMac())){
					LogHandler.debug("当前授权码在该主机中不适用，请联系l2iu工作，提供主机mac地址申请新授权，联系邮件为：l2iu11@163.com。");
					return false;
				}
				String enddate = map.get("enddate").toString();
				if(!CalendarUtil.compare(enddate, CalendarUtil.getDate())){
					LogHandler.debug("当前授权码已经过期，请联系l2iu工作，提供主机mac地址申请新授权，联系邮件为：l2iu11@163.com。");
					return false;
				}
			}
		}else{
			LogHandler.debug("license文件中不存在授权码，请联系l2iu工作，提供主机mac地址申请授权，联系邮件为：l2iu11@163.com。");
			return false;
		}
		return true;
	}
	
}
